package com.hhq.system.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hhq.system.common.model.Option;
import com.hhq.system.model.entity.SysTenant;
import com.hhq.system.model.form.TenantForm;
import com.hhq.system.model.query.TenantPageQuery;
import com.hhq.system.model.vo.TenantPageVO;

import java.util.List;

/**
 * 租户
 *
 * @author haoxr
 * @since 2022/6/3
 */
public interface SysTenantService extends IService<SysTenant> {

    /**
     * 租户列表
     *
     * @return
     */
    Page<TenantPageVO> getTenantPage(TenantPageQuery queryParams);


    /**
     * 租户下拉列表
     *
     * @return
     */
    List<Option> listTenantOptions();

    /**
     * 新增租户
     *
     * @param formData
     * @return
     */
    Long saveTenant(TenantForm formData);

    /**
     * 修改租户
     *
     * @param deptId
     * @param formData
     * @return
     */
    Long updateTenant(Long deptId, TenantForm formData);

    /**
     * 删除租户
     *
     * @param ids 租户ID，多个以英文逗号,拼接字符串
     * @return
     */
    boolean deleteByIds(String ids);

    /**
     * 获取租户详情
     *
     * @param tenantId
     * @return
     */
    TenantForm getTenantForm(Long tenantId);

    /**
     * 切换租户
     * @param tenantId
     * @return
     */
    boolean switchTenant(Long tenantId);


}
